# shellcheck shell=sh
# shellcheck disable=SC2034 
# shellcheck disable=SC2059

# ferreus_orbit Plugins for HPE "DL385 Gen10 Plus"

fo_get_sorted_name(){
  card="$(echo "$DEVPATH" | cut -d/ -f6)"
  target="$(echo "$DEVPATH" | cut -d/ -f9)"
  # We expect here 2 SATA SSDs and 12 SAS HDD
  if   [ "${card}" = "host8" ] ; then
    sc="$(echo "${DEVPATH}" | cut -d/ -f12)"
    my_box="$(awk '{print $6}' < "/sys/class/scsi_device/${sc}/device/path_info")"
    id="$(awk '{print $8}' < "/sys/class/scsi_device/${sc}/device/path_info")"
    num=$(( ((my_box - 1) * 4) + id + 1 ))
    disk=sd$(fo_get_dev_letter ${num})
  else
    id=$(($( echo "$target" | cut -d: -f1) - 6))
    disk=sd$(fo_get_dev_letter ${id})
  fi
  if [ "$USE_FO_NAME" -eq 1 ] || [ "$1" = "-f" ]; then
    echo "Box${my_box}-Disk${id}"
  else
    echo "$disk"
  fi
}

fo_get_did(){
  fo_get_id "$1"
}

fo_get_id(){
  if   [ "${card}" = "host8" ] ; then
    sc="$(echo "${DEVPATH}" | cut -d/ -f12)"
    my_box="$(awk '{print $6}' < "/sys/class/scsi_device/${sc}/device/path_info")"
    id="$(awk '{print $8}' < "/sys/class/scsi_device/${sc}/device/path_info")"
    num=$(( ((my_box - 1) * 4) + id + 1 ))
  else
    num=$(($( echo "$target" | cut -d: -f1) - 6))
  fi
  echo "$num"
}

FO_BOX_DISPOSITION="| Box {BOX} |{Box{BOX}-Disk1}|{Box{BOX}-Disk2}|{Box{BOX}-Disk3}|{Box{BOX}-Disk4}|\
{new_line}|       |{SN_Box{BOX}-Disk1}|{SN_Box{BOX}-Disk2}|{SN_Box{BOX}-Disk3}|{SN_Box{BOX}-Disk4}|"

FO_DISPOSITION="""
HDD disposition (Front Panel)
__________{UNDERSCORE}___{UNDERSCORE}___{UNDERSCORE}___{UNDERSCORE}__
{BOX1}
|-------|-{MINUS}-|-{MINUS}-|-{MINUS}-|-{MINUS}-|
{BOX2}
|-------|-{MINUS}-|-{MINUS}-|-{MINUS}-|-{MINUS}-|
{BOX3}
¯¯¯¯¯¯¯¯¯¯{HIGHER}¯¯¯{HIGHER}¯¯¯{HIGHER}¯¯¯{HIGHER}¯¯

HDD disposition (Rear Panel):
__{UNDERSCORE}__
|{Box-Disk0}|
|{SN_Box-Disk0}|
|-{MINUS}-|
|{Box-Disk1}|
|{SN_Box-Disk1}|
¯¯{HIGHER}¯¯
"""

FO_BOX_TEXTILE="|_.Box {BOX}|{Box{BOX}-Disk1}|{Box{BOX}-Disk2}|{Box{BOX}-Disk3}|{Box{BOX}-Disk4}|"

FO_TEXTILE="""

h3. HDD disposition (Front Panel)

{BOX1}
{BOX2}
{BOX3}

h3. HDD disposition (Rear Panel):

|{Box-Disk0}|
|{Box-Disk1}|
"""
 
for b in 1 2 3; do
  fo_box=$(printf "${FO_BOX_DISPOSITION}"|sed "s/{BOX}/${b}/g")
  FO_DISPOSITION=$(printf "${FO_DISPOSITION}"|sed "s/{BOX${b}}/${fo_box}/g")
  fo_box_textile=$(printf "${FO_BOX_TEXTILE}"|sed "s/{BOX}/${b}/g")
  FO_TEXTILE=$(printf "${FO_TEXTILE}"|sed "s/{BOX${b}}/${fo_box_textile}/g")
done
 
